package com.xd.core.business.entity;

import java.math.BigDecimal;
import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

/**
 * <p>
 * 放款表
 * </p>
 *
 * @author ZX
 * @since 2025-02-27
 */
@Builder
@NoArgsConstructor
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="OutInfo对象", description="放款表")
public class OutInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "放款id")
    @TableId(value = "out_id", type = IdType.AUTO)
    private Integer outId;

    @ApiModelProperty(value = "进件订单号")
    private Integer incomingId;

    @ApiModelProperty(value = "贷款期限")
    private Integer term;

    @ApiModelProperty(value = "还款日")
    private String repayDay;

    @ApiModelProperty(value = "还款方式(0--等额本金,1--等额本息,2--等本等息,3--一次性付清,4--先息后本)")
    private String loanMethod;

    @ApiModelProperty(value = "还款频率(0--天,1--月,2--周)")
    private String repayFrequency;

    @ApiModelProperty(value = "年化率%")
    private BigDecimal rate;

    @ApiModelProperty(value = "借款用途")
    private String used;

    @ApiModelProperty(value = "申请提现金额")
    private BigDecimal outLoan;

    @ApiModelProperty(value = "放款状态(0--待放款,1--放款中,2--放款完成 ,3--放款失败，4--退款)")
    private String outStatus;

    @ApiModelProperty(value = "资方公司id")
    private Integer companyId;

    @ApiModelProperty(value = "借款开始日期")
    private Date outStartTime;

    @ApiModelProperty(value = "借款结束日期")
    private Date outEndTime;

    @ApiModelProperty(value = "资方放款账户")
    private String capitalAccount;

    @ApiModelProperty(value = "本次放款金额")
    private BigDecimal loanAmount;

    @ApiModelProperty(value = "付款通道（1-通道一，2-通道二）")
    private String payPass;

    @ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date updateTime;

    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date createTime;

    @ApiModelProperty(value = "支付成功时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date payTime;

    @ApiModelProperty(value = "宝付订单号")
    private String transOrderId;

    @ApiModelProperty(value = "商户订单号")
    private String orderNo;

    @ApiModelProperty(value = "流程状态（1-进件中，2-进件审核中，3-等待授信，4-授信失败，5-授信完成,6-等待签约,7-签约完成,8-抵押办理,9--抵押完成,10--公证办理,11--待放款，12--放款中，13--放款成功")
    private String status;

    @ApiModelProperty(value = "仲裁城市坐标")
    private String citySqes;

    @ApiModelProperty(value = "争议方式(1--公证,2--仲裁,3--诉讼)")
    private String controversy;

    @ApiModelProperty(value = "仲裁所在城市")
    private String cityRemark;

    @ApiModelProperty(value = "预付款支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date advancePayTime;

    @ApiModelProperty(value = "预付款状态（0--未到账，1--已到账）")
    private String advanceStatus;

}
